Ошибка в типовой интеграция 1С:ЗУП с 1С:Документооборот
После обновления типовой конфигурации 1С:ЗУП на релиз Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.18.337) при очередном обменен в рамках типой интеграции с 1С:Документооборот вылезла следующая ошибка:
1 2 |
DMGetChangesRequest {ОбщийМодуль.ИнтеграцияС1СДокументооборотОбмен.Модуль(428)}: Поле объекта не обнаружено (skipMessages) |
Поиск в тексте модуля по указанной в сообщении об ошибке строке привел к следующей конструкции:
1 |
ПропускаемыеСообщения = Запрос.skipMessages; // СписокXDTO |
Чуть выше была так же обнаружена новая вставка по сравнению с предыдущими релизами:
1 |
ПоддерживаетсяПропускСообщенийСОшибкой = ИнтеграцияС1СДокументооборот.ДоступенФункционалВерсииСервиса("2.1.28.12.CORP"); |
То есть фирма 1С обновила программный интерфейс web-сервиса интеграции с 1С:Документооборт и в номом релизе 1С:ЗУП решила его использовать. Однако похоже забыла поставить проверку на то используется ли в конкретном случае новая версия 1С:Документооборт. В нашем случае как раз используется конфигурация 1С:Документооборт релиза 2.1.10.2 и поэтому при обращении к новой фиче происходит ошибка, так как ее просто нет в старой версии сервиса.
Приступаем к исправлению
Добавляем общий модуль ИнтеграцияС1СДокументооборотОбмен в расширение. Делаем вызов исправленной процедуры ПолучитьДанные.
В ней перенесем обращение к новому свойству объекта сервиса в условие с проверкой а доступен ли новый функционал:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
&Вместо("ПолучитьДанные") Процедура маг_ПолучитьДанные() Попытка ПоддерживаетсяПропускСообщенийСОшибкой = ИнтеграцияС1СДокументооборот.ДоступенФункционалВерсииСервиса("2.1.28.12.CORP"); Пока Не ПрочитаныВсеСообщения Цикл Запрос = ИнтеграцияС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetChangesRequest"); Запрос.lastMessageID = НомерПоследнегоСообщения; //В Типовой была здесь и получали ошибку, так как нет проверки на доступность нового функционала //ПропускаемыеСообщения = Запрос.skipMessages; // СписокXDTO Если ПоддерживаетсяПропускСообщенийСОшибкой Тогда //++Наша вставка ПропускаемыеСообщения = Запрос.skipMessages; // СписокXDTO //--Наша вставка Запрос.lastMessageWasReceived = СообщениеБылоПринято; |
После этого исправления все заработало как надо. Обмен с интегрированной системой стал проходить без ошибок.
Еще можно посмотреть
Похожие записи
- Пропажа индексов дескрипторов в 1С:Документообороте
- Ошибки публикации базы и веб сервиса на веб сервере 1C+ Apache +Linux.
- Хранилище вариантов отчета 1С для внешнего отчета
- Делаем свою автоподстановку в 1С Документообороте
- Установка второго веб-сервера Apache для 1С
- Вывод дополнительных реквизитов в несколько колонок
- Публикация 1С на Веб сервере Apache Linux
- Добавляем обработчик события для дополнительного реквизита 1С
- Зачем нужны Дополнительные реквизиты 1С
- Расположение дополнительных реквизитов на форме